Generally, a network device includes a memory to contain the device's operating system. Typically, if a network device experiences any kind of failure, the device will reboot to reload its operating system and attempt to resume normal operation. However, for some problems, such as the failure of a module within the device, the device overheating, and the like, a simple reboot may not be sufficient to return the device to operational status.
Traditionally, computer networks are designed to withstand network device failure by virtue of redundancy. That is, one goal in designing a network is that no single network device (or single module of a modular network device) should be the only path to any portion of the network. However, it is not always possible to design a network that achieves this goal. Moreover, while building a network that includes redundant paths is possible, the costs associated with doing so may be unacceptable.
Some network devices incorporate a scripting language, such as TCL, to aid in recovering from device failure. However, the scripts required to take such action are often very complex. Extensive knowledge of the scripting language is required to implement a program that will take appropriate action based on various failure scenarios.